package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;

import Modelo.Equipo;
import Modelo.Jugador;
import Modelo.Liga;
import Vista.VentanaRegistrarEquipo;

public class ControladorRegistrarEquipo implements ActionListener {

	
	//Objetos
	
	private VentanaRegistrarEquipo ventana;
	private Liga liga;
	private File f;
	ArrayList<Jugador> jugadores;
	
	
	
	//Constructor
	
	public ControladorRegistrarEquipo(Liga liga) {
		super();
		
		ventana = new VentanaRegistrarEquipo();
		this.liga = liga;
		ventana.setVisible(true);
		ventana.setLocationRelativeTo(null);
		ventana.agregarListener(this);
		jugadores= new ArrayList<Jugador>();
		
	
		
		
		// TODO Auto-generated constructor stub
	}
	//cuenta los jugadores
public int contarJugador()
{
	 return this.jugadores.size();
}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getActionCommand().equalsIgnoreCase("Registrar")){
			if(this.contarJugador()!=0)
			{
				guardarEquipo();
			}
			else
			
				ventana.mostrarMensaje("Debe Ingresar los jugadores para registrar un equipo");
				
			
			
		}
		else if(e.getActionCommand().equalsIgnoreCase("Cargar jugadores"))
		{
			cargarJugador();
		}
		
		
	}
	// guarda los equipos 
	
public void guardarEquipo(){
		
	 
		String codigo, nombre, ciudad, estadio;
		int anno;
		//valida los que no existan campos en blancos
		
		if (ventana.CampoBlanco() == true)
			ventana.mostrarMensaje("Datos incompleatos");
		else
		{
		
		try{
			codigo = ventana.getcodigo();
			//busca si el equipo ya se encuentra registrado
		
		if (liga.buscarCodigoEquipo(codigo)==false){
		
		nombre = ventana.getnombre();
		anno = Integer.parseInt(ventana.getanno());
		ciudad = ventana.getciudad();
		estadio = ventana.getestadio();
		
		Equipo equipo= new Equipo(codigo,nombre,anno,ciudad,estadio,this.jugadores);
		liga.cargarEquipo(equipo);
		jugadores = new ArrayList<Jugador>();
		ventana.mostrarMensaje("Equipo registrado exitosamente");
		ventana.limpiarPantalla();
		
		}
		else
		{
		  
			ventana.mostrarMensaje("El codigo del equipo ya se encuentra registrado");
		    ventana.limpiarPantalla();
		}
		  
		}
	  catch(NumberFormatException e){
				  ventana.mostrarMensaje("El año del equipo debe ser Numeros Enteros");
	  }
	  
	
	}
		
}
	
	
	public void cargarJugador (){
		
		if(this.contarJugador()==0)
		{
		
		
		String cedula, nombre, apellido, posicion;
		int dia, mes, anno;
		
		
		
		javax.swing.JFileChooser j = new javax.swing.JFileChooser();
		j.showOpenDialog(j);
		String path = j.getSelectedFile().getAbsolutePath();
		f = new File(path);
		
		try{
			
			FileReader fr = new FileReader (f);
			BufferedReader br = new BufferedReader(fr);
			String linea = null;
	
			
			
		    while((linea = br.readLine())!= null){
		    	
		    	cedula = linea;
		    	
		    	linea = br.readLine();
		    	nombre = linea;
		    	
		    	linea = br.readLine();
		    	apellido = linea;
		    	
		    	linea = br.readLine();
		    	dia = Integer.parseInt(linea);
		    	
		    	linea = br.readLine();
		    	mes = Integer.parseInt(linea);
		    	
		    	linea = br.readLine();
		    	anno = Integer.parseInt(linea);
		    	
		    	linea = br.readLine();
		    	posicion = linea;
		    	
		    
		    	
		    	Jugador jugador;
		    	jugador = new Jugador(cedula,nombre,apellido,dia,mes,anno,posicion);
		    	
		    	this.jugadores.add(jugador);
		    	
		    	
		    	
		    
		    		
		    	
		    }
		br.close();
		fr.close();
		ventana.mostrarMensaje("Jugadores cargados exitosamente");
			
			
		}catch(Exception ex){
			
			ex.printStackTrace();
		}
		}
		else
			ventana.mostrarMensaje("Ya cargo los jugadores");	
		
	}
	

	
	
	
	
	
	
	
	
}
